package compilador.analisadorLexico;

import java.util.ArrayList;
import java.util.List;

public class Alfabeto {

	public static List<Character> DELIMITADOR_CARACTERE = new ArrayList<Character>();
	static {
            DELIMITADOR_CARACTERE.add(';');
            DELIMITADOR_CARACTERE.add('(');
            DELIMITADOR_CARACTERE.add(')');
            DELIMITADOR_CARACTERE.add('{');
            DELIMITADOR_CARACTERE.add('}');
	}
	
	public static List<Character> OPERADOR_CARACTERE = new ArrayList<Character>();
	static {
            OPERADOR_CARACTERE.add('+');
            OPERADOR_CARACTERE.add('-');
            OPERADOR_CARACTERE.add('*');
            OPERADOR_CARACTERE.add('/');

            OPERADOR_CARACTERE.add('>');
            OPERADOR_CARACTERE.add('<');
            OPERADOR_CARACTERE.add('=');

            OPERADOR_CARACTERE.add('&');
            OPERADOR_CARACTERE.add('|');
            OPERADOR_CARACTERE.add('!');
            OPERADOR_CARACTERE.add('.');
            
            OPERADOR_CARACTERE.add('[');
            OPERADOR_CARACTERE.add(']');
            
            OPERADOR_CARACTERE.add(',');
	}
	
	public Alfabeto() {

	}
	
	public static boolean ehDigito(char caractere){
            return Character.isDigit(caractere);
	}
	
	public static boolean ehLetra(char caractere){
            return Character.isLetter(caractere);
	}
	
	public static boolean ehAspa(char caractere){
            return caractere == '\'';
	}
	
	//Para frases
	public static boolean ehValido(char caractere){
        final int charInt = (int) caractere;
            if(32 <= charInt && charInt <= 126)
                return true;
            else
                return false;
	}
	
	public static boolean ehOperador(char caractere){
            return OPERADOR_CARACTERE.contains(caractere);
	}

	public static boolean ehDelimitador(char caractere){
            return DELIMITADOR_CARACTERE.contains(caractere);
	}

	
	public static boolean ehEspaco(char caractere){
            if(caractere == ' ' || caractere == '\n' || caractere == '\r' || caractere == '\t' || caractere == '\f')
                    return true;
            else
                    return false;
	}
}
